Today, more and more users, systems and applications use the Internet for accessing a variety of different services, such as but not limited to web sites that offer access to different media files. A few non-limiting examples of files accessible through surfing include media files, such as ADOBE FLASH files, MICROSOFT SILVERLIGHT files, software files, documents, file sharing applications, etc. The files that are available for access and/or download can be embedded within web pages or they can be standalone files. A few examples of popular web sites that provide a wide variety of files for access, streaming, downloading, etc., include YOUTUBE, GOOGLE and YAHOO, Windows-Update, Internet stores such as “App Store” the electronic shop of Apple Inc. USA, and many other web sites are also available for gaining access to such files.
As a result of the huge amount of websites and users the pool of the unallocated IPv4 addresses that can be allocated to new websites is exhausting. Consequently more and more IP service providers and operators move to the IPv6 IP address system. IPv4 stands for the Internet Protocol version 4 (IPv4), which is the fourth version in the development of the Internet Protocol (IP). IPv4 uses 32 bits addresses, which limits the address space to approximately 4.3 billion addresses. IPv6 stands for Internet Protocol version 6 is the latest version of the IP communication protocol that provides an identification and location system for computers on networks and routes traffic across the Internet. IPv6 uses a 128-bits address, allowing 2128, or approximately 3.4×1038 addresses.
Today the communication over the Internet is in a transition of moving from IPv4 to IPv6. Consequently, there are many network devices that are not capable of using IPv6 or that their operation over IPv6 is not smooth and suffer from frequent failures. Network devices may be such as but not limited to gateways (GW), gatekeepers, routers, switches, etc.
In order to accelerate the adopting of IPv6 and to reduce the antagonism to implement unstable technique, a dual-stack technique is used. Dual-stack refers to side-by-side implementation of IPv4 and IPv6. Both protocols run on the same network infrastructure. Dual-stack technique is described in RFC 4213 and RFC 6555, the entire content of those RFCs are incorporated herein by reference. The dual-stack can be considered as a transitional technique to facilitate the deployment of IPv6. The ultimate objective of the dual-stack is to deploy the single stack of IPv6 globally.
A user that uses the dual stack technique tries to open two connections in parallel toward the same destination, a website for example. One connection uses the IPv4 version while the other uses the IPv6 version. In case that the connection over IPv6 succeeded then the connection over IPv4 is terminated and the communication proceed over the IPv6. If the connection over IPv6 fails, then the communication proceeds over the IPv4 connection. Along the description the terms website and webserver may be used interchangeably.
In case that a proxy is installed in between the user and the destination the dual-stack has some deficiencies. For example, a user that tries to establish a connection with a destination over an IP network opens the two TCP/IP connections, one over IPv4 and one over IPv6. The proxy obtains these two requests and responds over both, over IPv6 and IPv4. Thus, leading the user's device to terminate the connection over IPv4 while keeping the connection over IPv6. Substantially, in parallel, the proxy may try to set two TCP/IP connections (one over IPv4 and one over IPv6) with the destination. However, at this side of the proxy the IPv6 connection fails and only the IPv4 connection succeeded. Consequently, a full connection between the user, which is connected with the proxy over IPv6, and the destination, which is connected with the proxy over IPv4, cannot be established and the user has to start from the beginning.